Communication systems are used for transmission of information from one device to another. The devices included in the communication system typically have either a transmitter, a receiver, or both. Before transmission, information is encoded by a transmitter's encoder into a format suitable for transmission over a communication channel. The communication channel may be a transmission line or the free space between the transmitting device and the receiving device. As the signal propagates through the communication channel, the transmitted signal is distorted by imperfections in the channel. Furthermore, the signal experiences degradation from noise and interference picked up during transmission. After the receiver receives the encoded information, it is decoded and translated into its original pre-encoded form. Both the transmitter and receiver are designed to minimize the effects of channel imperfections, noise, and distortion.
One widely used method of reducing the effects of channel imperfections, noise, and distortion in high speed communication systems is encoding digital information using Trellis Coded Modulation (TCM). TCM encoding schemes assign a coded binary value to digital information signals input to the transmitter's encoder. The coded binary value is determined based upon the bits that make up the information signal and the bits that represent the current state of a finite state machine (FSM), an electronic circuit that implements a restricted sequence of states, included in the transmitter's encoder. Thus, the TCM encoder generates a restricted sequence of coded binary values based on the FSM's states. Since the TCM encoding scheme is dependent upon an FSM, the complexity of encoding scheme depends upon the number of states supported by the particular FSM.
The device that receives the encoded information includes a receiver having a Maximum Likelihood Sequence Decoder (MLSD) which may be, for example, a Viterbi decoder. The receiver receives the encoded information and analyzes it using the MLSD. The MLSD compares the received encoded information to all of the possible encoding sequences that could be generated by the transmitter's encoder and then decides what was the most likely sequence sent by the encoder. The MLSD then decodes the encoded information based upon the most likely sequence.
Digital information that passes through a communication system can vary in length. Encoded digital information is grouped into strings of bits called frames. In some communication systems the number of bits included in each frame is fixed, while in others the number of bits is variable. TCM is equally suitable for encoding data organized in frames of fixed or variable lengths. Also, TCM can be equally applied to both burst transmissions or continuous-type transmissions.
Included in a typical frame of TCM encoded information constituting a burst transmission is; a preamble, a data payload, a cyclic redundancy code (CRC), and a Trellis tail. The preamble is a string of bits sent by the transmitter that are also stored in the receiver. The receiver compares the received preamble to the stored preamble, and via this comparison, determines information related to the channel, i.e., gain control information, carrier-frequency offset information, signal timing adjustment information, and channel estimation information that is utilized by the receiver when decoding the received signal. The data payload is the encoded version of the information that was input to the transmitter's encoder. The CRC is used to determine if any of the bits transmitted in the frame of data were received in error. The CRC is the remainder generated by dividing a polynomial that represents the entire frame of information by a divisor stored in the encoder. The receiver takes the received frame and again represents it as a polynomial and divides the polynomial by the same divisor stored in the encoder. Next, the receiver compares the resulting remainder with the CRC and determines if the received signal is in error.
As stated previously, the receiver's MLSD decodes the encoded information based upon a determination of the most likely sequence of states used to encode the information. In order for the MLSD to work properly for all of the encoded information in the frame, the frame has to end at a known state. Thus, for burst transmissions, the MLSD may not be able to accurately decode the encoded information. In order to avoid this problem associated with burst transmissions, each frame of transmitted information includes a string of bits called a “Trellis tail” that is appended at the end of each frame. The bits that make up the Trellis tail are merely used to make sure that the MLSD is provided with a sequence that ends at a known state, thus, facilitating accurate decoding.
The string of bits that make up the Trellis tail can differ significantly depending upon the type of encoder used, the number of FSM states utilized by the encoder, and the known ending state of the sequence. Because the Trellis tail may be implemented in many different ways, the string of bits that make up the Trellis tail must be stored in memory and later accessed during the encoding and decoding processes. Therefore, in general, TCM encoding schemes used for burst transmissions have the distinct disadvantage of requiring dedicated memory for storage of the bits that make up the Trellis tail.